# 로고 관리 가이드

## 📖 개요

이 가이드는 **사용자**가 로고를 관리하기 위한 것입니다.

프로그래머 문의 없이 **로고 파일만 교체**하면 모든 것이 자동으로 적용됩니다.

---

## ✅ 로고 교체 안내 (중요)

### 로고 파일은 자유롭게 교체할 수 있습니다

| 항목 | 내용 |
|---|---|
| 교체 방법 | `assets/logo_left.png` 또는 `assets/logo_right.png` 파일을 덮어쓰기 |
| 원본 PNG 크기 | **달라도 됩니다** — 크기에 관계없이 자동으로 맞춰집니다 |
| 삽입 크기 기준 | `config.json`의 `width_percent` 값만 사용 |
| 파일명 | **반드시 유지** — `logo_left.png`, `logo_right.png` |
| 권장 형식 | 투명 배경 PNG |

### 크기 계산 방식

```
삽입 로고 가로 = 사진 가로 × width_percent ÷ 100
삽입 로고 세로 = 삽입 로고 가로 × (원본 로고 세로 ÷ 원본 로고 가로)
```

**예시 — 가로 사진(4000px), landscape = 12:**

```
삽입 로고 가로 = 4000 × 12 ÷ 100 = 480px
삽입 로고 세로 = 원본 로고 비율에 따라 자동 계산
```

### 로고를 교체해도 크기가 달라지지 않는 이유

```
기존 logo_left.png: 1000×500  →  사진 안 로고: 동일 크기
새  logo_left.png: 3000×800  →  사진 안 로고: 동일 크기
새  logo_left.png:  500×500  →  사진 안 로고: 동일 크기
```

원본 PNG 크기는 **가로세로 비율 유지**에만 사용되고,
실제 삽입 크기는 `width_percent` 기준으로만 결정됩니다.

### 크기를 바꾸고 싶을 때

`config.json`의 `width_percent` 값을 수정하세요.

```json
"width_percent": {
  "landscape": 12,   ← 가로 사진 (사진 가로의 12%)
  "portrait":  15,   ← 세로 사진 (사진 가로의 15%)
  "square":    13    ← 정사각형  (사진 가로의 13%)
}
```

---

## 왼쪽 회사 로고 변경

### 방법

1. **logo_left.png 파일을 준비합니다**
   - 파일명: **반드시** `logo_left.png`
   - 형식: PNG (권장) 또는 JPG
   - 크기: 자유 (아무 크기나 가능)

2. **기존 logo_left.png를 새 파일로 교체합니다**
   - 위치: `03-로고삽입기/` 폴더
   - 파일 덮어쓰기

3. **프로그램을 다시 실행합니다**
   - 자동으로 새 로고가 적용됩니다

### 예시

```
D:\사진\회사사진\

에서 처리할 때

새로운 logo_left.png로 교체
↓
프로그램 재실행
↓
새 로고가 자동으로 적용됨
```

---

## 오른쪽 회사 로고 변경

### 방법

1. **logo_right.png 파일을 준비합니다**
   - 파일명: **반드시** `logo_right.png`
   - 형식: PNG (권장) 또는 JPG
   - 크기: 자유 (아무 크기나 가능)

2. **기존 logo_right.png를 새 파일로 교체합니다**
   - 위치: `03-로고삽입기/` 폴더
   - 파일 덮어쓰기

3. **프로그램을 다시 실행합니다**
   - 자동으로 새 로고가 적용됩니다

---

## PNG 파일 준비 방법

### 권장 규격

| 항목 | 권장 사항 |
|------|---------|
| **형식** | PNG (투명 배경) |
| **크기** | 상관없음 (자동 계산) |
| **배경** | 투명 (최우) |
| **해상도** | 200x200 이상 권장 |

### 투명 배경 PNG 만드는 법

1. **포토샵 / 일러스트레이터**
   - 배경을 투명하게 설정
   - PNG로 내보내기

2. **온라인 도구 (무료)**
   - `remove.bg` (배경 제거)
   - `pixlr.com` (온라인 이미지 편집)

3. **Windows Paint (간단함)**
   - 로고를 열기
   - 배경을 선택 → 삭제
   - PNG로 저장

---

## PNG 크기는 자동으로 맞춰집니다

### 중요: 원본 크기는 무시됩니다

로고 PNG의 **원본 픽셀 크기**는 **사용되지 않습니다**.

프로그램이 사진 크기에 맞춰 **자동으로 리사이즈**합니다.

### 예시

```
로고 크기가 어떻든 항상 같은 크기로 삽입됩니다

✓ 1000 x 500 픽셀 PNG
✓ 500 x 500 픽셀 PNG
✓ 3000 x 800 픽셀 PNG
✓ 200 x 200 픽셀 PNG

→ 모두 같은 크기로 적용됨

사진 크기에 맞춰
자동으로 계산되므로

PNG를 새로 만들 때마다

크기를 맞출 필요가 없습니다.
```

---

## 로고 크기 조절 (고급)

### 현재 설정 (기본값)

```
왼쪽 로고 (logo_left.png)
├─ 가로사진: 사진 가로의 12%
├─ 세로사진: 사진 가로의 15%
└─ 정사각형: 사진 가로의 13%

오른쪽 로고 (logo_right.png)
├─ 가로사진: 사진 가로의 12%
├─ 세로사진: 사진 가로의 15%
└─ 정사각형: 사진 가로의 13%
```

### 크기를 변경하려면

**config.json 파일을 수정합니다**

#### 1단계: config.json을 텍스트 에디터로 열기

```
파일 위치: 03-로고삽입기/config.json
프로그램: 메모장, VS Code 등 아무 텍스트 에디터
```

#### 2단계: width_percent 값 수정

```json
"width_percent": {
  "landscape": 12,   ← 이 값을 변경
  "portrait": 15,    ← 이 값을 변경
  "square": 13       ← 이 값을 변경
}
```

#### 3단계: 저장 후 프로그램 재실행

### 크기 조절 예시

#### 로고를 더 크게 하고 싶을 때

```
기존: "landscape": 12
변경: "landscape": 15   (크기 증가)

또는

기존: "landscape": 12
변경: "landscape": 20   (더 크게)
```

#### 로고를 더 작게 하고 싶을 때

```
기존: "landscape": 12
변경: "landscape": 10   (크기 감소)

또는

기존: "landscape": 12
변경: "landscape": 8    (더 작게)
```

---

## 로고 위치 변경 (고급)

### 현재 설정 (기본값)

```
왼쪽 로고:  왼쪽 위   (top_left)
오른쪽 로고: 오른쪽 위 (top_right)
```

### 위치를 변경하려면

**config.json의 position 값을 수정합니다**

### 가능한 위치 (9가지)

```
┌─────────────────────┐
│ 왼쪽위  중앙위  오른쪽위 │
│ top_left center top_right
│
│ 왼쪽중  중앙   오른쪽중 │
│ center_left center center_right
│
│ 왼쪽아래 중앙아래 오른쪽아래│
│ bottom_left center bottom_right
└─────────────────────┘
```

### 위치 변경 예시

```json
// 기존 (왼쪽 위)
"position": "top_left"

// 변경 (오른쪽 아래)
"position": "bottom_right"

// 변경 (중앙)
"position": "center"
```

---

## 투명도 조절 (고급)

### 현재 설정 (기본값)

```json
"opacity": 1.0   (100% 완전 불투명)
```

### 투명도를 변경하려면

**config.json의 opacity 값을 수정합니다**

### 투명도 설정 예시

```json
"opacity": 1.0      ← 100% (완전 불투명, 기본값)
"opacity": 0.8      ← 80%  (약간 투명)
"opacity": 0.6      ← 60%  (더 투명)
"opacity": 0.5      ← 50%  (반투명)
"opacity": 0.3      ← 30%  (많이 투명)
```

### 투명도 변경 시 주의

투명 PNG를 사용할 때만 효과가 보입니다.

흰색/검은색 배경 PNG는 투명도 조절이 잘 보이지 않습니다.

→ **투명 PNG 사용 권장**

---

## 자주 묻는 질문 (FAQ)

### Q1: 로고 파일을 잘못 교체했습니다. 복구하려면?

**A:** 백업 폴더에 원본이 보관되어 있을 수 있습니다.

또는 다시 올바른 파일로 교체한 후 프로그램을 재실행하세요.

---

### Q2: PNG 파일 크기(예: 100x100)로 크기가 결정되나요?

**A:** **아니요.** PNG 원본 크기는 무시됩니다.

프로그램이 사진 크기에 맞춰 **자동으로 계산**합니다.

따라서 어떤 크기의 PNG를 사용해도 같습니다.

---

### Q3: 로고가 너무 크거나 작습니다

**A:** config.json의 `width_percent` 값을 조절하세요.

```
크기를 크게: 12 → 15
크기를 작게: 12 → 10
```

---

### Q4: 로고를 3개 이상 추가할 수 있나요?

**A:** 프로그래머에게 문의해주세요.

config.json에 새 로고를 추가하면 자동으로 적용됩니다.

---

### Q5: 파일명을 변경해도 되나요? (logo_left → logo_new)

**A:** **변경하면 안 됩니다.**

config.json의 파일명을 **반드시** `logo_left.png`, `logo_right.png`로 유지하세요.

또는 config.json에서 파일명을 수정한 후 재실행하세요.

---

### Q6: PNG가 깨져 보입니다

**A:** 다음을 확인하세요:

1. PNG 파일이 정상인지 (다른 프로그램에서 열기)
2. 파일명이 정확한지 (logo_left.png, logo_right.png)
3. 투명 PNG인지 (흰색 배경 PNG는 흰 배경으로 보임)

---

### Q7: 로고가 적용되지 않습니다

**A:** 다음을 확인하세요:

1. **파일 위치**: `03-로고삽입기/` 폴더에 logo_left.png, logo_right.png가 있는가?
2. **파일명**: 대소문자 정확히 `logo_left.png`, `logo_right.png`인가?
3. **프로그램 재실행**: 파일을 교체한 후 프로그램을 **다시 실행**했는가?

---

### Q8: 로고 투명도가 작동하지 않습니다

**A:** 투명 PNG 파일을 사용하세요.

흰색/검은색 배경 이미지는 투명도 설정이 잘 보이지 않습니다.

→ PNG를 다시 만들 때 **배경을 투명**하게 하세요.

---

## 지원

문제가 계속되면 **로그 파일**을 확인하세요.

```
위치: 03-로고삽입기/logs/YYYY-MM-DD.log
```

로그에 오류 메시지가 기록되어 있습니다.

프로그래머에게 로그 파일을 보여주세요.

---

## 전화번호 변경 방법

### 전화번호만 바꾸면 됩니다

`config.json` 파일을 텍스트 에디터(메모장 등)로 열어서 아래 값만 수정합니다:

```json
"phone_text": {
  "enabled": true,
  "text": "042-826-0326"   ← 이 숫자만 변경
}
```

저장 후 프로그램을 다시 실행하면 새 번호가 적용됩니다.

### 전화번호를 넣지 않으려면

```json
"phone_text": {
  "enabled": false
}
```

`enabled`를 `false`로 바꾸면 전화번호가 사진에 들어가지 않습니다.

### 글자 크기 조절

```json
"font_size_percent": {
  "landscape": 9.0,   ← 가로 사진 (사진 높이의 9%)
  "portrait":  5.2,   ← 세로 사진 (사진 높이의 5.2%)
  "square":    4.2    ← 정사각형  (사진 높이의 4.2%)
}
```

숫자를 크게 하면 글자가 커지고, 작게 하면 글자가 작아집니다.

### 위치 변경

기본값은 오른쪽 아래(`bottom_right`)입니다. 변경하려면:

```json
"position": "bottom_left"   ← 왼쪽 아래
"position": "bottom_right"  ← 오른쪽 아래 (기본)
```

---

## 개발용 테스트 체크리스트

> 테스트는 사용자가 직접 수행합니다.  
> 각 항목을 확인 후 `[x]`로 표시하세요.

### 예외 처리 확인

- [ ] **21. 왼쪽 로고만 제거했을 때 정상 동작 확인**
  - `logo_left.png`를 프로젝트 루트에서 제거(또는 이름 변경) 후 실행
  - 오른쪽 로고만 삽입되고 프로그램이 정상 종료되는지 확인
  - 스킵 메시지가 출력되는지 확인
  - 테스트 후 원복

- [ ] **22. 오른쪽 로고만 제거했을 때 정상 동작 확인**
  - `logo_right.png`를 프로젝트 루트에서 제거(또는 이름 변경) 후 실행
  - 왼쪽 로고만 삽입되고 프로그램이 정상 종료되는지 확인
  - 스킵 메시지가 출력되는지 확인
  - 테스트 후 원복

- [ ] **23. 로고 파일 없을 때 오류 메시지 확인**
  - `logo_left.png`, `logo_right.png` 둘 다 제거 후 실행
  - 프로그램이 강제 종료되지 않고 계속 실행되는지 확인
  - 사용자에게 명확한 오류/스킵 메시지가 출력되는지 확인
  - 테스트 후 원복

- [ ] **24. config.json 오류 발생 시 친절한 안내 확인**
  - **파일 없음 테스트**: `config.json`을 다른 이름으로 변경 후 실행
    - "설정 파일을 찾을 수 없습니다" 등 안내 메시지 출력 후 종료되는지 확인
  - **JSON 오류 테스트**: `config.json` 내용에 오류 삽입(예: 쉼표 제거) 후 실행
    - "설정 파일 JSON 파싱 실패" 등 안내 메시지 출력 후 종료되는지 확인
  - 두 경우 모두 테스트 후 원복

### 대량 처리 확인

- [ ] **25. 500장 이상 대량 처리 시 진행 메시지 확인**
  - `source/` 폴더에 500장 이상의 사진을 준비
  - 실행 중 처리 진행 메시지가 정상 출력되는지 확인
  - 프로그램이 응답 없음 상태처럼 보이지 않는지 확인
  - 전체 처리 완료 후 요약 결과가 출력되는지 확인

---

## 기술 사양 (참고용)

| 항목 | 값 |
|------|-----|
| 지원 형식 | JPG, PNG, WebP, HEIC |
| 로고 개수 | 무제한 (config.json 설정) |
| 자동 리사이징 | YES (원본 크기 무시) |
| 회전 감지 | 자동 (EXIF) |
| 투명도 지원 | YES (PNG) |

---

**마지막 업데이트**: 2026-07-03
